#include <stdio.h>
#include <stdlib.h>

#include "pilha.h"

/***
  Pilhas
*/

PILHA_WHILE PilhaWhile [25];
int nPilhaWhile;

/***
  Rotinas
*/

void Empilha (PILHA **pilha, void *conteudo)
{
  PILHA *item;
  
  item = malloc (sizeof (PILHA));
  
  if (item == NULL)
  {
    printf ("Erro Interno: Nao foi possivel alocar memoria para uma pilha.\n");
    exit (1);
  }
  
  item->conteudo = conteudo;
  item->proximo = (*pilha);
  (*pilha) = item;
}

void *Desempilha (PILHA **pilha)
{
  PILHA *pilhaAux;
  void *conteudo;
  
  conteudo = NULL;
  
  if (*pilha != NULL)
  {
    pilhaAux = (*pilha);
    conteudo = (*pilha)->conteudo;
    (*pilha) = (*pilha)->proximo;
    free (pilhaAux);
  }
  
  return conteudo;
}
